package org.hy.framework.hibernate.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;


import com.hy.enterprise.framework.jpa.core.entity.util.Page;
import com.hy.enterprise.framework.persistence.PersistentException;

@SuppressWarnings(value={"unchecked","hiding"})
public class MyPlainBaseDao<T> extends HibernatePlainAbstractDao<T, Integer	, String> implements IHibernatePlainAbstractDao<T,Integer,String> {
	
//	@Override
//	public SessionFactory getSessionFactory() {
//		// TODO Auto-generated method stub
//		return super.getSessionFactory();
//	}
//
//	@Override
//	public Session getHibernateSession() {
//		// TODO Auto-generated method stub
//		return super.getHibernateSession();
//	}
//
//	@Override
//	public Integer batchExecute(boolean isNamedQuery, String query,
//			Map<String, ?> values) {
//		// TODO Auto-generated method stub
//		return super.batchExecute(isNamedQuery, query, values);
//	}
//
//	@Override
//	public Integer batchExecute(boolean isNamedQuery, String query,
//			Object... values) {
//		// TODO Auto-generated method stub
//		return super.batchExecute(isNamedQuery, query, values);
//	}
//
//	@Override
//	public void clear() {
//		// TODO Auto-generated method stub
//		super.clear();
//	}
//
//	@Override
//	public boolean contains(T persistentEntity) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.contains(persistentEntity);
//	}
//
//	@Override
//	public boolean containsById(Integer identifier) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.containsById(identifier);
//	}
//	
//	@Override
//	public boolean containsByIdentifier(String identifier) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.containsByIdentifier(identifier);
//	}
//
//	@Override
//	public Integer count() {
//		// TODO Auto-generated method stub
//		return super.count();
//	}
//
//	@Override
//	public Integer count(String query, boolean isNamedQuery) {
//		// TODO Auto-generated method stub
//		return super.count(query, isNamedQuery);
//	}
//
//	@Override
//	public Integer countByNamedQuery(String queryName, Map<String, ?> parameters) {
//		// TODO Auto-generated method stub
//		return super.countByNamedQuery(queryName, parameters);
//	}
//
//	@Override
//	public Integer countByNamedQuery(String queryName, Object... parameters) {
//		// TODO Auto-generated method stub
//		return super.countByNamedQuery(queryName, parameters);
//	}
//
//	@Override
//	public Integer countByQuery(String query, Map<String, ?> parameters) {
//		// TODO Auto-generated method stub
//		return super.countByQuery(query, parameters);
//	}
//
//	@Override
//	public Integer countByQuery(String query, Object... parameters) {
//		// TODO Auto-generated method stub
//		return super.countByQuery(query, parameters);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find() throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find();
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(int first, int max)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(first, max);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(int first, int max,
//			String queryString, Object... values) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(first, max, queryString, values);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(String queryString)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(queryString);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(String queryString, int first,
//			int max) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(queryString, first, max);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(String queryString,
//			Map<String, ?> parameters) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(queryString, parameters);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(String queryString,
//			Map<String, ?> parameters, int first, int max)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(queryString, parameters, first, max);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> find(String queryString,
//			Object... values) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.find(queryString, values);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByExample(Object exampleInstance) {
//		// TODO Auto-generated method stub
//		return super.findByExample(exampleInstance);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByExample(T exampleInstance,
//			String[] excludeProperty) {
//		// TODO Auto-generated method stub
//		return super.findByExample(exampleInstance, excludeProperty);
//	}
//
//	@Override
//	public T findByIdentifier(String identifier) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByIdentifier(identifier);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByIdentifier(
//			String... identifiers) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByIdentifier(identifiers);
//	}
//
//	@Override
//	public T findById(Integer id) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findById(id);
//	}
//
//	@Override
//	public List<T> findById(Integer... ids) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findById(ids);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedParams(
//			String queryString, Map<String, ?> parameters)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedParams(queryString, parameters);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedParams(
//			String queryString, Map<String, ?> parameters, int first, int max)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedParams(queryString, parameters, first, max);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedQuery(int first,
//			int max, String queryName, Object... values)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedQuery(first, max, queryName, values);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedQuery(String queryName)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedQuery(queryName);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedQuery(String queryName,
//			int first, int max) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedQuery(queryName, first, max);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedQuery(String queryName,
//			Object... values) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedQuery(queryName, values);
//	}
//
//	
//	@Override
//	public <T extends Serializable> List<T> findByNamedQueryAndNamedParams(
//			String queryName, Map<String, ?> parameters)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedQueryAndNamedParams(queryName, parameters);
//	}
//
//	@Override
//	public <T extends Serializable> List<T> findByNamedQueryAndNamedParams(
//			String queryName, Map<String, ?> parameters, int first, int max)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findByNamedQueryAndNamedParams(queryName, parameters, first, max);
//	}
//
//	
//	
//	@Override
//	public Page<T> findPage(String hql) throws PersistentException {
//		return findPage(hql, new Object[]{});
//	}
//
//	@Override
//	public Page<T> findPage(String hql, Map<String, ?> parameters) {
//		// TODO Auto-generated method stub
//		//return null;
//		throw new RuntimeException();
//	}
//
//	@Override
//	public Page<T> findPage(String hql, Object... parameters) {
//		return findPage(hql, 0, new Page().getPageSize(), parameters);
//	}
//	
//	@Override
//	public Page<T> findPage(String hql,int offset,int max, Object... parameters) {
//		Page<T> page = new Page<T>();
//
//		String totalRecords_str = "select count(*) "+hql.substring(hql.indexOf("from"));
////		String total_hql = "select count(*) from User as o";
//		System.err.println(totalRecords_str);
//		Query query_total_hql = super.populateParameters(getHibernateSession().createQuery(totalRecords_str),
//				parameters);
//		Long total =  (Long) query_total_hql
//				.setFirstResult(offset)
//				.setMaxResults(max)
//				.uniqueResult();
//		page.setTotalRecords(total);
//		
//		List<T> datas;
//		Query query_hql = super.populateParameters(getHibernateSession().createQuery(hql),
//				parameters);
//
//
//		datas= query_hql
//				.setFirstResult(offset)
//				.setMaxResults(max)
//				.list();
//		page.setDatas(datas);
//		
//		page.setPageSize(max);
//		page.setOffset(offset);
//		return page;
//	}
//	
//	
//	@Override
//	public Page<T> findPageByPageNo(String hql, int pageNo) {
//		return findPageByPageNo(hql, pageNo, new Object[]{});
//	}
//	
//	
//	@Override
//	public Page<T> findPageByPageNo(String hql ,int pageNo , Object... parameters) {
//		
//		return findPageByPageNo(hql , pageNo, new Page().getPageSize(), parameters);
//	}
//	
//	@Override
//	public Page<T> findPageByPageNo(String hql ,int pageNo,int pageSize, Object... parameters) {
//		Page<T> page = new Page<T>();
//		int offset = page.getOffset(pageNo, pageSize);
//		return findPage(hql, offset, pageSize, parameters);
//	}
//
//	
//	@Override
//	public <T extends Serializable> T findUniqueResult(String queryString)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResult(queryString);
//	}
//
//	@Override
//	public <T extends Serializable> T findUniqueResult(String queryString,
//			Map<String, ?> parameters) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResult(queryString, parameters);
//	}
//
//	@Override
//	public <T extends Serializable> T findUniqueResult(String queryString,
//			Object... values) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResult(queryString, values);
//	}
//
//	@Override
//	public <T extends Serializable> T findUniqueResultByNamedParams(
//			String queryName, Map<String, ?> parameters)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResultByNamedParams(queryName, parameters);
//	}
//
//	@Override
//	public <T extends Serializable> T findUniqueResultByNamedQuery(
//			String queryName) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResultByNamedQuery(queryName);
//	}
//
//	@Override
//	public <T extends Serializable> T findUniqueResultByNamedQuery(
//			String queryName, Object... values) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResultByNamedQuery(queryName, values);
//	}
//
//	@Override
//	public <T extends Serializable> T findUniqueResultByNamedQueryAndNamedParams(
//			String queryName, Map<String, ?> parameters)
//			throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.findUniqueResultByNamedQueryAndNamedParams(queryName, parameters);
//	}
//
//	@Override
//	public void flush() throws PersistentException {
//		// TODO Auto-generated method stub
//		super.flush();
//	}
//
//	@Override
//	public void flushAndClear() {
//		// TODO Auto-generated method stub
//		super.flushAndClear();
//	}
//
//	@Override
//	public Class<T> getPersistentEneityClass() {
//		// TODO Auto-generated method stub
//		return super.getPersistentEneityClass();
//	}
//
//	@Override
//	public T getReference(String identifier) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.getReference(identifier);
//	}
//
//	@Override
//	public boolean isPropertyUnique(String propertyName, Object newValue,
//			Object oldValue) {
//		// TODO Auto-generated method stub
//		return super.isPropertyUnique(propertyName, newValue, oldValue);
//	}
//
//	@Override
//	public T merge(T persistentEntity) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.merge(persistentEntity);
//	}
//
//	@Override
//	public String[] merge(T... persistentEntities) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.merge(persistentEntities);
//	}
//
//	@Override
//	public boolean persist(T persistentEntity) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.persist(persistentEntity);
//	}
//
//	@Override
//	public String[] persist(T... persistentEntities) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.persist(persistentEntities);
//	}
//
//	
//
//	@Override
//	public void refresh(T persistentEntity) throws PersistentException {
//		// TODO Auto-generated method stub
//		super.refresh(persistentEntity);
//	}
//
//	@Override
//	public void cascadeRemove(T persistentEntity) throws PersistentException {
//		// TODO Auto-generated method stub
//		super.cascadeRemove(persistentEntity);
//	}
//
//	@Override
//	public boolean remove(T persistentEntity) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.remove(persistentEntity);
//	}
//
//	@Override
//	public String[] remove(T... persistentEntities) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.remove(persistentEntities);
//	}
//
//	@Override
//	public boolean remove(String identifier) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.remove(identifier);
//	}
//
//	@Override
//	public boolean removeById(Integer id) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.removeById(id);
//	}
//
//	@Override
//	public Integer remove(String... identifiers) throws PersistentException {
//		// TODO Auto-generated method stub
//		return super.remove(identifiers);
//	}
//
//	@Override
//	protected T createEmptyEntity() {
//		// TODO Auto-generated method stub
//		return super.createEmptyEntity();
//	}
//
//	@Override
//	protected Query populateParameters(Query query, Map<String, ?> parameters) {
//		// TODO Auto-generated method stub
//		return super.populateParameters(query, parameters);
//	}
//
//	@Override
//	protected Query populateParameters(Query query, Object... parameters) {
//		// TODO Auto-generated method stub
//		return super.populateParameters(query, parameters);
//	}
//
//	@Override
//	public Boolean isExists(T persistentEntity, String propertyName,
//			Object propertyValue) {
//		
//		return super.isExists(persistentEntity, propertyName, propertyValue);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.hy.framework.hibernate.dao.I#setSessionFactory(org.hibernate.SessionFactory)
//	 */
//	@Override
//	@Resource
//	public void setSessionFactory(SessionFactory sessionFactory) {
//		super.setSessionFactory(sessionFactory);
//	}
	
	
}
